Networked computer devices, such as clients and servers, use data transfer protocols in transferring data from one computer device to another. These protocols transfer control traffic and data traffic between a client and server. A client transmits control messages to a server to establish a communications session between the client and server. The server then transmits responses to the client.
In certain protocols, such as HyperText Transfer Protocol (HTTP), the control traffic as well as the data traffic flows over the same connection. Using HTTP, a client negotiates a communications session with a server using Transmission Control Protocol (TCP) and receives data, in the form of the content of a web page, over the same TCP connection.
In other applications, such as File Transfer Protocol (FTP) and Real Time Streaming Protocol/Real-time Transport Protocol (RTSP/RTP), control traffic flows on a control connection between the client and the server while data traffic flows on a data connection between the client and the server. The data connection between the server and the client includes, for example, either a passive-FTP data connection or RTP and RTCP User Datagram Protocol (UDP) traffic from client to server.
During a passive FTP session, a client establishes both a control connection and a data connection to a server. To connect to the server in a passive FTP session, the client opens an FTP control connection to the server's port TCP/21. The client then sends a passive data command to the server. In response, the server opens a passive TCP port on a TCP port selected by the server. Conventionally, the server transmits data traffic through a dynamic (TCP or UDP) port selected by the server (e.g., port numbers greater than 1024 and not well-known Internet Assigned Numbers Authority (IANA) ports). The server instructs the client to connect to the dynamic TCP port and the client opens a data connection to the dynamic port. The client then retrieves data over this data connection.
Conventionally, the client and server computer devices communicate with each other through network devices, such as routers or switches. Certain conventional network devices are enabled with Web Cache Communications Protocol (WCCP), developed by Cisco Systems, Inc. of San Jose, Calif. WCCP specifies interactions between one or more network devices and one or more web-caches such that certain types of traffic flowing through the network device are redirected to a web-cache without any visible effect to an end user (e.g., transparent redirection). For example, when a WCCP enabled network device receives an HTTP request, the network device examines the protocol field and the destination port field in the header of the request. If the protocol field indicates that the request is a TCP request and if the destination port field indicates the destination port is port number 80, the network device forwards the HTTP request to an associated web-cache. Such redirection optimizes resource usage of the network device, thereby reducing transmission costs and lowering response times of the network device.